\chapter{Messungen}\label{chap:Measure}
Die Aufgabenstellung verlangt eine Faltung eines Bildes, welche mit der \gls{CPU} sowie der \gls{GPU} gelöst werden kann. Die beiden Recheneinheiten sollen einander gegenübergestellt und Schlüsse daraus gezogen werden können.

\section{Zeitmessung}
Die Zeitmessungen der CPU mit der Integer Matrix ist in der Tabelle \ref{tab:measureCPU} zusammengefasst.
\begin{table}[!h]
\centering
\begin{tabular}{|l|r|r|r|}
\hline
 & & & \\
\textbf{Matrix} & $T_{min}$ [ms] & $T_{max}$ [ms] & $T_{mean}$ [ms] \\
\hline
1x1 & 736 & 747 & 741.8 \\ \hline
3x3 & 1065 & 1070 & 1067.8 \\ \hline
7x7 & 2519 & 2567 & 2542.4 \\ \hline
13x13 & 6853 & 6933 & 6890.8 \\ \hline
21x21 & 16834 & 17065 & 16973.8 \\ \hline
\end{tabular}
\caption{Messresultate CPU}
\label{tab:measureCPU}
\end{table}
Mit einer Matrixgrösse 1x1 wird jedes Pixel einmal gelesen und neu geschrieben. Die Zeit der Berechnung für ein neues Bild steigt mit der Anzahl der im Kernel gezählten Elemente. Mit der Formel aus \ref{eq:cpuLinear} ergibt sich folgende Multiplikationskonstante $T_k$. Für die Zeit $t_{1x1} = 741.8$ und $N_{ks} = 21^2$:
\begin{equation}
T_k = \frac{t_{m}-t_{1x1}}{N_{ks} - 1} = 36.891\text{ms}
\label{eq:cpuLinear}
\end{equation}
Mit dem eingesetzten Algorithmus ist es möglich, die Zeit vorgängig abzuschätzen:
\begin{equation}
t_{e} = T_k (N_{ks} - 1) + t_{1x1}
\end{equation}
\begin{table}[!h]
\centering
\begin{tabular}{|l|r|r|r|}
\hline
 & & & \\
\textbf{Matrix} & $T_{min}$ [ms] & $T_{max}$ [ms] & $T_{mean}$ [ms] \\
\hline
1x1 & 748 & 755 & 751.4 \\ \hline
3x3 & 1168 & 1190 & 1180.8 \\ \hline
7x7 & 3186 & 3232 & 3207.8 \\ \hline
13x13 & 9179 & 9267 & 9215.6 \\ \hline
21x21 & 22997 & 23071 & 23034.6 \\ \hline
\end{tabular}
\caption{Messresultate CPU mit Floating Point}
\label{tab:measureCPU_FPU}
\end{table}\\
Die Konstante für Floating Point Rendering beträgt $T_k = 50.644\text{ms}$.
\begin{table}[!h]
\centering
\begin{tabular}{|l|r|r|r|}
\hline
 & & & \\
\textbf{Matrix} & $T_{min}$ [ms] & $T_{max}$ [ms] & $T_{mean}$ [ms] \\
\hline
1x1 & 238 & 259 & 250.8 \\ \hline
3x3 & 293 & 314 & 306.4 \\ \hline
7x7 & 692 & 710 & 705.6 \\ \hline
13x13 & 1814 & 1834 & 1824.6 \\ \hline
21x21 & 4280 & 4390 & 4357.2 \\ \hline
\end{tabular}
\caption{Messresultate GPU}
\label{tab:measureGPU}
\end{table}
Bei der \gls{GPU} stimmt die Linearisierung gemäss Gleichung \ref{eq:cpuLinear} ziemlich genau überein. Hier beträgt die konstante Zeit $T_k = 9.333\text{ms}$.\\
\\
In Diagramm \ref{fig:measureCPUvsGPU} sind die Resultate aus der Zeitmessung zusammengefasst.
\begin{figure}[!h]
\centering
\includegraphics[width=0.9\textwidth]{fig/measureCPUvsGPU}
\caption{Resultate Zeitmessung CPU, CPU\_FPU und GPU}
\label{fig:measureCPUvsGPU}
\end{figure}